//package com.suhuamo.transtionals.controller;
//
//import com.suhuamo.transtionals.mapper.UserMapper;
//import com.suhuamo.transtionals.pojo.User;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.beans.factory.annotation.Qualifier;
//import org.springframework.data.redis.core.RedisTemplate;
//import org.springframework.transaction.annotation.Transactional;
//import org.springframework.web.bind.annotation.GetMapping;
//import org.springframework.web.bind.annotation.RequestMapping;
//import org.springframework.web.bind.annotation.RestController;
//
///**
// * @author yuanchuncheng
// * @slogan 不待春风慢，我以明月宴群山。
// * @date 2025-01-20
// * @description
// */
//@RestController
//@RequestMapping("/redis2")
//public class Redis2Controller {
//    // 自带 RedisTemplate
//    @Autowired
//    @Qualifier("stringRedisTemplate")
//    private RedisTemplate<String,String> stringRedisTemplate;
//
//    @Autowired
//    UserMapper userMapper;
//
//    /**
//     * 正常写入
//     * @param
//     * @return void
//     * @version 1.0
//     * @author yuanchuncheng
//     */
//    @GetMapping("/no-1")
//    public void no1(){
//        stringRedisTemplate.opsForValue().set("test", "no-1");
//    }
//
//    /**
//     * 不会回滚，正常写入
//     * @param
//     * @return void
//     * @version 1.0
//     * @author yuanchuncheng
//     */
//    @GetMapping("/no-2")
//    public void no2(){
//        stringRedisTemplate.opsForValue().set("test", "no-2");
//        int i = 1 / 0;
//    }
//
//    /**
//     * 不会回滚，正常写入
//     * @param
//     * @return void
//     * @version 1.0
//     * @author yuanchuncheng
//     */
//    @GetMapping("/no-3")
//    @Transactional
//    public void no3(){
//        stringRedisTemplate.opsForValue().set("test", "no-3");
//        int i = 1 / 0;
//    }
//
//    @GetMapping("/no-4")
//    public String no4(){
//        return stringRedisTemplate.opsForValue().get("test");
//    }
//
//    @GetMapping("/sql1")
//    public String sql1() throws InterruptedException {
//        String string = userMapper.selectById(1).toString();
//        Thread.sleep(10_000);
//        return string;
//    }
//
//    @GetMapping("/sql2")
//    @Transactional
//    public String sql2() throws InterruptedException {
//        User user = userMapper.selectById(1);
//        user.addCount();
//        userMapper.updateById(user);
//        Thread.sleep(10_000);
//        return user.toString();
//    }
//}
